1. Field of Art
The disclosure generally relates to the field of encoding videos, and more specifically to encoding videos in substantially real time as the video is streamed to a computing device.
2. Description of the Related Art
Users of computing devices commonly view videos on their computing devices. Conventionally, users download video files on their computing device and execute the file to view the video. These conventional methods of viewing content are disadvantageous because they require a user to wait for a file to download before the user can view the file. Moreover, it may be unreasonable to expect a user to download each file, locate it on the computing device and execute it.
To overcome these shortcomings, some systems enable users to stream video files from a hosting server. However, applications executing on a client device may not be enabled to stream certain formats of video streams. Additionally, the video frames within the video stream may be too large to provide a uninterrupted playback to a mobile computing device with limited computing resources or a poor network connection. This is particularly true with mobile computing devices having poor network connections. As such, users of mobile computing devices typically have to wait to stream videos on their devices. The videos that are streamed typically freeze or buffer periodically, preventing a user from enjoying uninterrupted playback of a video stream.
Some servers may encode video streams to deliver a lower resolution video to a mobile computing device. However, such systems also cause a lag between a user's request and the streaming process. For example, such systems are unable to transcode a video stream in real-time while streaming the transcoded video to the user. Additionally, such systems are typically unable to preserve video control functionality for users, such as pause, seek, and video resolution changes. As such, users who wish to stream video files on their mobile computing devices typically have to wait an unreasonable amount of time for a video to load and buffer or they have to suffer through a video that does not provide an uninterrupted playback.